package com.huidu.bitrade.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.huidu.bitrade.entity.Member;
import com.huidu.bitrade.dto.MemberAllParentDto;
import com.huidu.bitrade.dto.MemberParentDTO;
import com.huidu.bitrade.dto.MemberParentUserDTO;
import com.huidu.bitrade.dto.MemberStarCountDTO;
import com.huidu.bitrade.entity.MemberHdc;
import com.huidu.bitrade.vo.ExportVo;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

public interface MemberMapper extends BaseMapper<Member> {

    List<MemberStarCountDTO> findMemberCount();

    List<MemberParentDTO> findParentList(@Param("id") Long id);

    /**
     * 查询用户和3代推荐人
     * @return
     */
    List<MemberParentUserDTO> findUserAndParent();


    /**
     * 查询用户和3代推荐人
     * @return
     */
    MemberParentUserDTO findUserAndParentById(@Param("id") Long id);
//    String getMemberPhone(Integer id);

    /**
     * 查询用户和所有推荐人
     * @return
     */
    List<MemberParentUserDTO> findAllParentList();


    /**
     * 查询用户和所有推荐人
     * @return
     */
    List<MemberAllParentDto> findAllParentById(@Param("ids") List<Long> ids);



    /**
     * 修改用户星级
     * @param memberId
     * @param memberStar
     * @param memberStarCount
     * @return
     */
    int updateMemberStar(@Param("memberId") Long memberId,@Param("memberStar") Integer memberStar,@Param("memberStarCount") Integer memberStarCount);

    List<Long> getUpdateHdcMember();
    BigDecimal getExchange(@Param("memberId") Long memberId);
    BigDecimal getWithdraw(@Param("memberId") Long memberId);
    BigDecimal getFee(@Param("memberId") Long memberId);
    BigDecimal getAward(@Param("memberId") Long memberId);

    long findTwoLevelCount(@Param("memberId") Long memberId);
}
